package com.sisgesbyte.web.managedBean.proyeccion;

import java.io.Serializable;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.services.proyeccion.MantProyeccionGeneralService;
import com.sisgesbyte.services.proyeccion.bean.ListaProyGeneralMarcasResponse;
import com.sisgesbyte.services.proyeccion.bean.ProyeccionGeneralMarcasBean;

@ManagedBean
@ViewScoped
public class ResumenProyeccionMontoPeriodoMarcaMBean implements Serializable{

	private static final long serialVersionUID = 1L;
	@EJB
	private MantProyeccionGeneralService mantProyeccionGeneralService;
	
	List<ProyeccionGeneralMarcasBean> listaProyeccionGeneralMarcas;
	private String  totalMarcas;
	
	@PostConstruct
	private void init() {
		
		inicializar();
	}

	public void inicializar(){
		try{
			totalMarcas ="";
			BigDecimal totalM =  BigDecimal.ZERO;
			ListaProyGeneralMarcasResponse response = mantProyeccionGeneralService.mostrarProyGeneralMarcas(ObtenerIdTransaccion());
			if(response.getCodigoRespuesta().equalsIgnoreCase(ConstantesInternasSistema.CODIGO_EXITO)){
				this.listaProyeccionGeneralMarcas = response.getListaProyeccionGeneralMarcas();
				for(ProyeccionGeneralMarcasBean ls : listaProyeccionGeneralMarcas){
					totalM = totalM.add(ls.getMontoTotal());
				}
				
				DecimalFormatSymbols simbolo=new DecimalFormatSymbols();
			    simbolo.setDecimalSeparator('.');
			    simbolo.setGroupingSeparator(',');
			    DecimalFormat formateador = new DecimalFormat("###,###.##",simbolo);
				totalMarcas = formateador.format(totalM.setScale(3, BigDecimal.ROUND_HALF_UP));
			}else{
				this.listaProyeccionGeneralMarcas = new ArrayList<ProyeccionGeneralMarcasBean>();
			}
			
		}catch(Exception e){
			System.out.println("Error al obtener la lista de Proyeccion General " + e.getMessage());
			this.listaProyeccionGeneralMarcas = new ArrayList<ProyeccionGeneralMarcasBean>();
		}
	}
	public String ObtenerIdTransaccion() {
		FacesContext fCtx = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) fCtx.getExternalContext().getSession(false);
		String sessionId = session.getId().replace(".undefined", "");
		return sessionId;
	}

	public List<ProyeccionGeneralMarcasBean> getListaProyeccionGeneralMarcas() {
		return listaProyeccionGeneralMarcas;
	}

	public void setListaProyeccionGeneralMarcas(
			List<ProyeccionGeneralMarcasBean> listaProyeccionGeneralMarcas) {
		this.listaProyeccionGeneralMarcas = listaProyeccionGeneralMarcas;
	}

	public String getTotalMarcas() {
		return totalMarcas;
	}

	public void setTotalMarcas(String totalMarcas) {
		this.totalMarcas = totalMarcas;
	}

	
}
